package com.yyplatform.frontend.platform.system.component.impl;

import org.springframework.stereotype.Service;

import com.yyplatform.frontend.platform.system.component.SysConfigComponent;
import com.yyplatform.frontend.platform.system.entity.SysConfigEntity;
import com.yyplatform.frontend.platform.system.enums.ConfigKeyEnum;
import com.yyplatform.frontend.platform.system.repository.SysConfigRepository;

import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;

/**
 * Created on 2024-09-25
 */
@Service
@Slf4j
@AllArgsConstructor
public class SysConfigComponentImpl implements SysConfigComponent {

    private SysConfigRepository sysConfigRepository;

    @Override
    public void saveConfig(ConfigKeyEnum configKeyEnum, String value) {
        saveConfig(configKeyEnum.getValue(), value);
    }


    @Override
    public String getConfig(String configKey, String def) {
        SysConfigEntity entity = sysConfigRepository.findByCode(configKey);
        if (entity != null) {
            return entity.getValue();
        }

        return def;
    }

    @Override
    public void saveConfig(String configKey, String value) {

        SysConfigEntity oldEntity = sysConfigRepository.findByCode(configKey);
        if (oldEntity != null) {
            oldEntity.setValue(value);
            sysConfigRepository.save(oldEntity);
            return;
        }


        SysConfigEntity entity = new SysConfigEntity();
        entity.setCode(configKey);
        entity.setValue(value);
        entity.setRemark("");
        sysConfigRepository.save(entity);
    }

}
